package com.lap.generator.commons.tools;

import java.nio.file.Paths;
import java.util.Arrays;
import java.util.stream.Collectors;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;

/**
 * 文件工具
 *
 * @author Shuisheng Lao(劳水生)
 * @version 0.0.1
 */
@Slf4j
public final class FileUtil {

  private FileUtil() {}

  /**
   * 获取源文件目录
   *
   * @param filePath 文件路径
   * @param fileName 文件名称
   * @return 文件源目录
   */
  public static String resolverPath(String filePath, String fileName) {
    // 使用 Paths 类来构建路径，更简洁且线程安全
    String baseDir = System.getProperty("user.dir");
    return Paths.get(baseDir, Constants.OUT, Constants.JAVA_SOURCE, filePath, fileName).toString();
  }

  public static String resolverFile(String ext, String... fileName) {
    return Arrays.stream(fileName).collect(Collectors.joining()) + "." + ext;
  }

  /**
   * 获取文件名
   *
   * @param fileName 文件名
   * @param prefix 文件前缀
   * @param suffix 文件后缀
   * @return 文件
   */
  public static String resolverFileName(String fileName, String prefix, String suffix) {
    StringBuilder sb = new StringBuilder(64);
    if (StringUtils.isNotBlank(prefix)) sb.append(prefix);

    sb.append(fileName);

    if (StringUtils.isNotBlank(suffix)) sb.append(suffix);

    return sb.toString();
  }
}
